package _go

//中心扩展法
func longestPalindrome(s string) string {
	var res string = ""
	for i := 0; i < len(s); i++ {
		//判断以i中心
		s1 := fund(s, i, i)
		//判断以i+1为中心
		s2 := fund(s, i, i+1)

		//比较那个 大 就返回那个
		if len(s1) < len(s2) {
			s1 = s2
		}
		if len(s1) > len(res) {
			res = s1
		}
	}
	return res
}
func fund(s string, i, j int) string {
	for i >= 0 && j < len(s) && s[i] == s[j] {
		i--
		j++
	}
	//注意返回的字符串  两个想等的时候回直接减和加 存在越界问题 要补上i+1 j不用 因为在切片切割 的时候 回自动减一
	return s[i+1 : j]
}
